FMI Table
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
Public Member Functions | List of all members
CellFormula Class Reference

A table cell which contains a formula. More...

#include <CellFormula.h>

Inheritance diagram for CellFormula:
Cell

Public Member Functions

 CellFormula (const char *str, const List< List< Cell * > > *tableCells)
 
double getNumeralValue () const override
 
String getValueForPrint () const override
 
void parseAndSetValue (const char *str) override
 
void writeToFile (std::ofstream &file) override
 Writes value to a text file. More...
 
virtual double getNumeralValue () const =0
 Returns the value of the cell as a double-precision floating point number. More...
 
virtual String getValueForPrint () const =0
 Returns the value of the cell as a String. More...
 
virtual void parseAndSetValue (const char *str)=0
 Parses given C-style string and stores value. More...
 
virtual void writeToFile (std::ofstream &file)=0
 Writes value to a text file. More...
 

Detailed Description

A table cell which contains a formula.

Implements the Cell class by storing a formula as a String and in a dynamic List

Member Function Documentation

◆ getNumeralValue()

double CellFormula::getNumeralValue ( ) const
overridevirtual

Value is recalculated every time this function is called (in case a referenced cell is changed).

Returns
0

Implements Cell.

◆ getValueForPrint()

String CellFormula::getValueForPrint ( ) const
overridevirtual

Value is recalculated every time this function is called (in case a referenced cell is changed).

Returns
"Error"

Implements Cell.

◆ parseAndSetValue()

void CellFormula::parseAndSetValue ( const char *  str)
overridevirtual

Each math operation is represented with a Pair that holds indecies of cell reference and a character for the operation.

Negatve value for the operation character means it's with priority and the result get's calculated immediately (rather than recursively, taking into account other values).

Exceptions
std::logic_error("ErrorInvalid column character!") Thrown when there is something between Rx and C in cell references \exception std::logic_error("Error: Invalid value!") Thrown when met value isn't a cell reference or number \exception throw std::logic_error("Error: Could not find operand!") Thrown when there isn't an operator character between two values

Implements Cell.

◆ writeToFile()

void CellFormula::writeToFile ( std::ofstream &  file)
overridevirtual

Writes value to a text file.

Implements Cell.


The documentation for this class was generated from the following files: